package com.wtwd.campus.controller;


import com.wtwd.campus.common.RespCode;
import com.wtwd.campus.entity.LastLocationData;
import com.wtwd.campus.model.vo.ResultVO;
import com.wtwd.campus.service.LastLocationDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author mjy
 * @since 2022-12-01
 */
@Api(tags = "获取最后一次定位模块")
@RestController
@RequestMapping("/last-location-data")
public class LastLocationDataController {


    @Resource
    private LastLocationDataService lastLocationDataService;

    /**
     * 插入或者更新最后一次定位信息
     *
     * @param lastLocationData
     * @return
     */
    @ApiOperation("插入或者更新最后一次定位信息")
    @PostMapping("/saveOrUpdate")
    public ResultVO saveOrUpdate(@RequestBody LastLocationData lastLocationData) {
        boolean rest = lastLocationDataService.InsertOrUpdate(lastLocationData);
        if (rest) {
            return ResultVO.ok();
        } else {
            return ResultVO.error(RespCode.FAILED);
        }
    }


    /**
     * 查询设备最后一次定位
     *
     * @param deviceId
     * @return
     */
    @ApiOperation("查询设备最后一次定位根据设备id")
    @GetMapping("/queryDeviceLastLocationByDeviceId")
    public ResultVO<LastLocationData> queryDeviceLastLocationByDeviceId(@RequestParam Integer deviceId) {
        return ResultVO.ok(lastLocationDataService.queryLastLocationDataByDeviceId(deviceId));
    }


    /**
     * 批量查询设备最后一次定位信息
     *
     * @param deviceIds
     * @return
     */
    @ApiOperation("批量查询设备最后一次定位信息")
    @PostMapping("/queryDeviceLastLocationByDeviceIds")
    public ResultVO<List<LastLocationData>> queryDeviceLastLocationByDeviceIds(@RequestBody List<Integer> deviceIds) {
        return ResultVO.ok(lastLocationDataService.queryLastLocationDataByDeviceIds(deviceIds));
    }


    /**
     * 查询设备最后一次定位
     *
     * @param imei
     * @return
     */
    @ApiOperation("查询设备最后一次定位根据设备imei")
    @GetMapping("/queryDeviceLastLocationByImei")
    public ResultVO<LastLocationData> queryDeviceLastLocationByImeis(@RequestParam String imei) {
        return ResultVO.ok(lastLocationDataService.queryLastLocationDataByImei(imei));
    }


    /**
     * 批量查询设备最后一次定位信息
     *
     * @param imeis
     * @return
     */
    @ApiOperation("批量查询设备最后一次定位信息根据imei集合")
    @PostMapping("/queryDeviceLastLocationByImeis")
    public ResultVO<List<LastLocationData>> queryDeviceLastLocationByImeis(@RequestBody List<String> imeis) {
        return ResultVO.ok(lastLocationDataService.queryLastLocationDataByImeis(imeis));
    }


}

